In computer networks, clients, servers, and peers commonly use trust models and mechanisms to ensure that unauthorized users do not gain access to network resources such as files, printers, other computers, or anything accessible on the network. These trust models and mechanisms are used to identify those users that are not malicious. However, it is possible that a user's machine poses and danger to the network without the user's knowledge. For example, a machine could contain a virus, or possess a security hole of which the user is unaware. Thus no matter how non-malicious the user is, the insecure state of the user's machine should be isolated from network until the security deficiencies are repaired. This security problem has particular application to three networking environments: Dynamic Host Configuration Protocol (DHCP), Virtual Private Networks (VPN), IEEE 802.1X, and Internet Protocol Security (IPsec).
DHCP is an Internet Protocol (IP) allocation specification whereby a server can allocate, or “lease,” an IP address to a client for a specific amount of time. When a DHCP client attaches itself to the network for the first time, it broadcasts a DHCP DISCOVER packet. A DHCP server on the local segment intercepts the broadcast and returns a DHCP OFFER packet that contains an IP address and other information necessary for provisioning the client with network access. The client may receive multiple DHCP OFFER packets from several different servers, so it must choose between them, and broadcast a DHCP REQUEST packet that identifies the explicit server chosen. The chosen server would return a DHCPACK that tells the client the lease is finalized. If the offer is no longer valid for some reason-perhaps due to a time-out or another client allocating the lease-then the selected server must respond with a DHCPNAK message. This would cause the client to send another DHCPDISCOVER packet, starting the process over again.
If a client has obtained a network address through some other means (e.g., manual configuration), it may use a DHCPINFORM request message to obtain other local configuration parameters. Servers receiving a DHCPINFORM message construct a DHCPACK message with any local configuration parameters appropriate for the client. Once the client has the lease, it must be renewed prior to the lease expiration through another DHCP REQUEST message. If a client finishes using a lease prior to its expiration date, the client is sends a DHCP RELEASE message to the server so that the lease can be made available to other nodes. If the server does not hear from the client by the end of the lease, it marks the lease as non-renewed, and makes it available for other clients to use.
In conventional DHCP provisioning systems, the DHCP server may conduct an authentication procedure to ensure that clients requesting network access have verified credentials. For example, before providing the client with the DHCP OFFER, the DHCP server on an organization's local area network (LAN) requires an access code to demonstrate that a user has authorization to access the LAN. The authentication procedure prevents unauthorized or malicious users from gaining access to network resources. However, the conventional authentication procedure does not prevent non-secure, or even malicious, machines from accessing the network. A user may have valid authorization to access the network, but the user's machine can be infected with a virus, or contain a security hole, that should be corrected before the machine is allowed access the network.
Another environment where a machine with a bad security state poses a risk to the network is VPN. VPN is the extension of a private network that encompasses links across shared or public networks like the Internet. A VPN enables you to send data between two computers across a shared or public internetwork in a manner that emulates the properties of a point-to-point private link. The act of configuring and creating a virtual private network is known as virtual private networking. To emulate a point-to-point link, data is encapsulated, or wrapped, with a header that provides routing information allowing it to traverse the shared or public transit internetwork to reach its endpoint. To emulate a private link, the data being sent is encrypted for confidentiality. Packets that are intercepted on the shared or public network are indecipherable without the encryption keys. The portion of the connection in which the private data is encapsulated is known as the tunnel. The portion of the connection in which the private data is encrypted is known as the virtual private network (VPN) connection.
VPN also uses an authentication protocol. A network access server (NAS) sends to VPN client a challenge, which consists of a session ID and an arbitrary challenge string, to the remote client. The remote client must return the user name and an encrypted form of the challenge string, the session ID, and the MD4-hashed password. This design, which uses a hash of the MD4 hash of the password, provides an additional level of security because it allows the server to store hashed passwords instead of clear-text passwords. However, once again the conventional authentication procedure does not prevent non-secure, or even malicious, machines from accessing the network. A VPN client may present valid authentication, but the VPN client machine itself can be infected with a virus, or contain a security hole, that should be corrected before the machine is allowed access the VPN.
Yet another environment where user authentication is insufficient is the use of IPsec. IPsec defines two functions that ensure confidentiality: data encryption and data integrity. IPsec uses an authentication header (AH) to provide source authentication and integrity without encryption, and the Encapsulating Security Payload (ESP) to provide authentication and integrity along with encryption. With IPsec, only the sender and recipient know the security key. If the authentication data is valid, the recipient knows that the communication came from the sender and that it was not changed in transit.
IPsec can be envisioned as a layer below the TCP/IP stack. This layer is controlled by a security policy on each computer and a negotiated security association between the sender and receiver. The policy consists of a set of filters and associated security behaviors. If a packet's IP address, protocol, and port number match a filter, the packet is subject to the associated security behavior. The first such packet triggers a negotiation of a security association between the sender and receiver. Internet Key Exchange (IKE) is the standard protocol for this negotiation. During an IKE negotiation, the two computers agree on authentication and data-security methods, perform mutual authentication, and then generate a shared key for subsequent data encryption.
After the security association has been established, data transmission can proceed for each computer, applying data security treatment to the packets that it transmits to the remote receiver. The treatment can simply ensure the integrity of the transmitted data, or it can encrypt it as well. Data integrity and data authentication for IP payloads can be provided by an authentication header located between the IP header and the transport header. The authentication header includes authentication data and a sequence number, which together are used to verify the sender, ensure that the message has not been modified in transit, and prevent a replay attack.
However, once again the conventional authentication procedure does not prevent non-secure, or even malicious, machines from accessing the network. A computer may present valid authentication, but the machine itself can be infected with a virus, or contain a security hole, that should be corrected before the machine is allowed access the network resources of another computer.
IEEE 802.1x is a standard for port-based network access control that provides authenticated network access to 802.11 wireless networks and wired Ethernet networks. Port-based network access control uses the physical characteristics of a switched local area network (LAN) infrastructure to authenticate devices that are attached to a LAN port and to prevent access to that port in cases where the authentication process fails.
During a port-based network access control interaction, a LAN port adopts one of two roles: authenticator or supplicant. In the role of authenticator, a LAN port enforces authentication before it allows user access to the services that can be accessed through that port. In the role of supplicant, a LAN port requests access to the services that can be accessed through the authenticator's port. An authentication server, which can either be a separate entity or co-located with the authenticator, checks the supplicant's credentials on behalf of the authenticator. The authentication server then responds to the authenticator, indicating whether the supplicant is authorized to access the authenticator's services.
The authenticator's port-based network access control defines two logical access points to the LAN, through one physical LAN port. The first logical access point, the uncontrolled port, allows data exchange between the authenticator and other computers on the LAN, regardless of the computer's authorization state. The second logical access point, the controlled port, allows data exchange between an authenticated LAN user and the authenticator. IEEE 802.1x uses standard security protocols, such as Remote Authentication Dial-In User Service (RADIUS), to provide centralized user identification, authentication, dynamic key management, and accounting.
However, once again the conventional authentication procedure does not prevent non-secure, or even malicious, machines from accessing the network. A computer may present valid authentication, but the machine itself can be infected with a virus, or contain a security hole, that should be corrected before the machine is allowed access the network resources of another computer. Accordingly, the is a need in the art for a system and method to ensure that clients are not provisioned with network access until they are secure, and can prove their security state.